package day03;

import java.util.Arrays;

public class YangHuisz {

	// 删除数组内的元素，根据下标进行删除
	public static void deleteByIndex() {

		int index = 0;

		// 模拟数据
		int[] array = { 1, 2, 3, 4, 5, 6 };
		// int[] temp = new int[array.length];
		// 定义删除元素的后数组
		int[] newArray = new int[array.length - 1];

		// 通过循环筛选要删除的下标元素
		// for (int i = 0; i < array.length; i++) {
		// if(i == index){
		// continue;
		// } else{
		// temp[i] = array[i];
		// }
		// }
		// 将删除元素前的元素拷贝过来
		System.arraycopy(array, 0, newArray, 0, index);
		if (index < array.length - 1) {
			// 将删除元素后面的元素统一向前移动一位
			System.arraycopy(array, index + 1, newArray, index, array.length - index - 1);
		}
		// 将删除后的数组对象指向原数组的引用
		array = newArray;
		System.out.println(Arrays.toString(newArray));
	}

	// 打印如图所示的杨辉三角，要求打印n行，n由自己决定
	// 1
	// 1 1
	// 1 2 1
	// 1 3 3 1
	// 1 4 6 4 1
	// ...
	public static void Sanjiao() {
		int n = 8;

		// 定义二维数组
		int[][] arr = new int[n][];

		// 二维数组的元素
		// int[] array;

		// 将每一行的第0位和最后一位的元素设置为1，其他的位置元素先设为默认值
		for (int i = 0; i < arr.length; i++) {
			// 初始化其中的一维数组
			int[] array = new int[i + 1];
			for (int j = 0; j < array.length; j++) {
				if (j == 0 || j == i) {
					array[j] = 1;
				}
			}
			arr[i] = array;
		}

		// 在除了0位和最后一位上填上值
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j <= i; j++) {
				if (j != 0 && j != i) {
					arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
				}
			}
		}

		// 打印二维数组
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr[i].length; j++) {
				System.out.print(arr[i][j] + "\t");
			}
			System.out.println();
		}
	}

	public static void Sanjiao2() {
		int n = 8;

		// 声明一个二维数组
		int[][] array = new int[n][];

		for (int i = 0; i < array.length; i++) {
			// 初始化其中的一维数组
			int[] arr = new int[i + 1];
			//将初始化的一维数组与二维数组绑定
			array[i] = arr;
			for (int j = 0; j < arr.length; j++) {
				//将首位的1填充
				if (i == 0 || j == 0 || j == i) {
					array[i][j] = 1;
				//填充其他位置
				} else {
					array[i][j] = array[i - 1][j] + array[i - 1][j - 1];
				}
			}
		}
		// 打印二维数组
		for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array[i].length; j++) {
				System.out.print(array[i][j] + "\t");
			}
			System.out.println();
		}
	}

	public static void main(String[] args) {
		// deleteByIndex();
		Sanjiao2();
	}
}